import java.util.Calendar;
import java.util.HashMap;
import java.util.Random;

/**
 * Representación del contrato de un servicio
 * 
 * @author Alex Muñoz , Mauricio Orellana
 * @version 2012.05.30
 */

public class Formulario {
    
    private Lector lector;
    
    /**
     * Constructor de Objetos de la clase Formulario
     */
    public Formulario()
    {
        this.lector = new Lector();
    }
    
    /**
     * Nuevo Empleado
     * 
     * @return Nuevo empleado creado
     */
    public Empleado nuevoEmpleado()
    {
        System.out.print("Nombre: ");
        String nombre = this.lector.leerCadena();
        
        System.out.print("Rut: ");
        String rut = this.lector.leerCadena();
        
        System.out.print("Direccion: ");
        String direccion = this.lector.leerCadena();
        
        System.out.print("Telefono: ");
        String telefono = this.lector.leerCadena();
        
        System.out.print("Rut de Recomendacion: ");
        String rutRecomendacion = this.lector.leerCadena();
        
        return new Empleado(nombre, rut, direccion, telefono, rutRecomendacion);
    }
    
    /**
     * Nuevo Contrato
     * 
     * @return Nuevo Contrato creado
     */
    public Contrato nuevoContrato()
    {
        String nombre,rut,direc;
        int i = 0,k=0, costo= 0;
        Calendar fInicio,fTermino;
        Plan p;
        
        System.out.print("Nombre del Cliente: ");
        nombre= lector.leerCadena();
        System.out.print("Rut del cliente: ");
        rut= lector.leerCadena();
        System.out.print("Direccion del cliente: ");
        direc= lector.leerCadena();
        do
        {
            if(k!=0)
            {
                System.out.println("Opcion incorrecta");
            }
        
            System.out.println("Servicio:\n1.-Seguridad\n2.-Limpieza");
            k = lector.leerOpcion();
        }while(k>2 || k<1);
        do
        {  
            if(i!=0)
            {
                System.out.println("Opcion Incorecta");
            }
            System.out.println("Plan:\n1.-Emprearial\n2.-Particular");
            i = lector.leerOpcion();
        }while(i<1 || i>2);
        
        costo = ((i==1)?50000:25000);
        Random r = new Random();
        costo*=(r.nextInt(5)+1);
        Tipo t = (i==1)?Tipo.EMPRESA:Tipo.PARTICULAR;
        do
        {
            System.out.println("Fecha Inicio:");
            fInicio = lector.leerFecha();
        }while(fInicio == null);
        
        do
        {
            System.out.println("Fecha Termino:");
            fTermino = lector.leerFecha();
        }while(fTermino==null);
        
        if(k==1)
        {
            p = new Seguridad(t,costo);
        }
        else
        {
            p = new Limpieza(t,costo);
        }
        System.out.println("Costo fijo Cliente: "+costo);
        return new Contrato(nombre,rut,direc,p,fInicio,fTermino); 
    }
}
